﻿//-----------------------------------------------------------------------
// <copyright file="MonthlyUsage.cs" company="Redmist">
//     Copyright (c) Damien T Smith. All rights reserved.
// </copyright>
// <author>Damien Smith</author>
//-----------------------------------------------------------------------

namespace Redmist.UsageMonitor.UsageData
{
    using System;
    using System.Collections.Generic;
    //using System.Runtime.Serialization;
    //using System.ServiceModel.Web;

    [Serializable]
    public class DataByDayModel
    {
        public DateTime Day { get; set; }
        public decimal? TotalUploadedMB { get; set; }
        public decimal? TotalDownloadedMB { get; set; }
        public decimal? OffpeakUploadedMB { get; set; }
        public decimal? OffpeakDownloadedMB { get; set; }
        public decimal? PeakUploadedMB { get; set; }
        public decimal? PeakDownloadedMB { get; set; }

    }

    [Serializable]
    public class UsagePeriodTrafficTotal
    {
        public DateTime StartDate { get; set; }
        public DateTime EndDate { get; set; }
        public decimal? TotalDownloadedMB { get; set; }
        public decimal? TotalUploadedMB { get; set; }
    }

    [Serializable]
    public class DataUsageModel
    {
        public bool IsAuthenticationFailure { get; set; }
        public bool IsUsageInformationAvailable { get; set; }
        public decimal? PeakDownloadsMB { get; set; }
        public decimal? PeakUploadsMB { get; set; }
        public decimal? CountedOffPeakDownloadsMB { get; set; }
        public decimal? CountedOffPeakUploadsMB { get; set; }
        public decimal? CurrentPeriodDownloadsToDateMB { get; set; }
        public decimal? CurrentPeriodUploadsToDateMB { get; set; }
        public long? PrepaidDataAllowanceMB { get; set; }
        public decimal? DataChargePerGB { get; set; }
        public DateTime? LastUsageUpdate { get; set; }
        public int? AnniversaryDay { get; set; }
        public decimal? ExcessDataThisMonthMB { get; set; }
        public decimal? ExcessChargeThisMonth { get; set; }
        public int? Days { get; set; }

        public List<DataByDayModel> DataByDay { get; set; }
        public List<UsagePeriodTrafficTotal> TotalUsageRecentMonths { get; set; }

        // added for the Aanet usage monitor program
        public string ServiceDescription { get; set; }
        public DateTime? LastAnniversaryDate { get; set; }
        public DateTime? NextAnniversaryDate { get; set; }
    }
}
